c语言point
⑴ 在c语言里,point有什么作用
一个普通的变量名,字面意思是"点"
可能用来做表示点的结构名,譬如
typedef struct point
{
int x;
int y;
}point;
⑵ C语言 point=(char*)i point为指针 i为长整形数据
(char*)i将i强制转换为字符类型,将值赋给point,赋值后输入指针的值为i的值(具体结果要看是以什么格式输入)
如果point为指针,这种赋值能通过编译,但没有实际意义。
⑶ C语言,关于指针 (point) 的程序。拜托了。谢谢。
#include <stdio.h>
main( )
{
int a=10,b=100,c=1000; //调试:a(0x0012ff7c) b(0x0012ff78)
c(0x0012ff74) 整型在C++中占4位
可以看出a,b,c内存单元是连续的
int *p=&c; //这里p指向c的内存单元
for(int i=0;i<10;i++)
printf("%d,",*p++);//内存当中abc的存储顺序为c,b,c,..
printf("\n");
}
由于你将p指向了c,所以显示时将从c内存单元里的内容开始,依次向后移动4位,而a,b,c在内存中是相邻的,所以显示结果为c,b,a,......由于0x0012ff80地址以后的内存单元没有用到,里面是随机数,所以以后显示的数字将不确定
⑷ 用c语言定义一个坐标点类型Point,每个Point有成员x, y表示其坐标。输入一个函数,求象限
用c语言定义一个坐标点类型Point,每个Point有成员x, y表示其坐标。输入一个函数,求象限
这么早已经习惯每天
⑸ C语言怎么用point关键字定义一个指针
point在C语言里面是关键字,自己定义关键字的时候最好都不要使用C语言里面有的关键字,这样容易出错~~
⑹ C语言,关于指针 (point) 的程序。文字列的长度。
我知道有一个人写了一些文章然后有人整理了下来。
他写的东西都是代码, 而且是非常详细的注释那种的。
这个人叫管宁
你可以到网上搜搜。
我这里有给你贴出来一点,你可以看看是否合你的意:
在c/c++中利用数组名作为函数参数传递排序和用指针进行排序的例子。
以下两个例子要非常注意,函数传递的不是数组中数组元素的真实值而是数组在内存中的实际地址。
#include <stdio.h>
void main(void)
{
void reversal();
static int a[10] = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */
int i;
for (i=0;i<10;i++)
{
printf("%d ",a);
}
printf("\n");
reversal(a,10); /* 调用自定义涵数进行反向显示排序,并把数组a的起始地址传送给形式参数x */
for (i=0;i<10;i++)
{
printf("%d ",a);
}
printf("\n");
}
void reversal(x,n)
int x[],n; /* 定义形式参数 */
{
int m=(n-1)/2; /* 计算10个数需要循环几次,因为是两两调换第一个数组是x[0]故应该是int(9/2) */
int temp,i,j; /* 建立零时变量temp用于每次交换处理时零时存储x的值 */
for (i=0;i<=m;i++)
{
j=n-1-i; /* 反向计算出被调换的数组下标,例如x[0] 对应的x[n-1-i]就是x[9] */
temp=x;
x=x[j];
x[j]=temp;
}
}
/* 次题需要注意的是:这里由于a[10]和x[10]是共同享内存地址位的所以进行交换后a[10]的实际值也就发生了改变 */
#include <stdio.h>
void main(void)
{
void reversal();
static int a[10] = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */
int i;
for (i=0;i<10;i++)
{
printf("%d ",a);
}
printf("\n");
reversal(a,10); /* 调用自定义涵数进行反向显示排序,并把数组a的起始地址传送给形式参数x */
for (i=0;i<10;i++)
{
printf("%d ",a);
}
printf("\n");
}
void reversal(x,n)
int *x,n; /* 定义x为指针变量 */
{
int temp,*p,*i,*j; /* 这里需要注意的是temp用与交换的时候临时存储数据的 */
i = x; /* 利用指针变量i存储数组a的起始地址 */
p = x + ((n-1)/2); /* 计算最后一次循环的时候数组a的地址 */
j = x + n - 1; /* 计算数组a也就是a[9]的结束地址好用于交换 */
for (;i<=p;i++,j--) /* 利用循环和指针进行数组元素值的交换 */
{
temp=*i; /* 用temp临时存储*i也就是循环中a实际的值 */
*i=*j;
*j=temp;
}
}
/* 此例同样要注意到利用指针进行数组的操作同样改变了实际数组各元素的值 */
==============================
c/c++中指针学习的两个绝好例子
对于众多人提出的c/c++中指针难学的问题做个总结:
指针学习不好关键是概念不清造成的,说的简单点就是书没有认真看,指针的学习犹如人在学习饶口令不多看多学多练是不行的,下面是两个很经典的例子,很多书上都有,对于学习的重点在于理解*x和x的理解,他们并不相同,*x所表示的其实就是变量a本身,x表示的是变量a在内存中的地址,如果想明白可以输出观察cout<<*x"|"x;,当定义了int *x;后对x=&a的理解的问题。仔细阅读和联系下面的两个例子我想指针问题就不是难点了!
#include <stdio.h>
main()
{
int a,b; /* 定义a,b两个整形变量用于输入两个整数 */
int *point_1,*point_2,*temp_point; /* 定义三个指针变量 */
scanf("%d,%d",&a,&b); /* 格式化输入a,b的值 */
point_1=&a; /* 把指针变量point_1的值指向变量a的地址 */
point_2=&b; /* 把指针变量point_2的值指向变量b的地址 */
if (a<b)
{
temp_point=point_1; /* 这里的temp_point是用于临时存储point_1的值也就是变量a的地址的 */
point_1=point_2; /* 把point_2的值赋予point_1 */
point_2=temp_point;
/* 由于point_1的值已经改变无法找到,利用前面临时存储的也就是temp_point找回原point_1的值赋予point_2,打到把point_1和point_2值对换的目的*/
}
printf("%d,%d",*point_1,*point_2); /* 利用*point_1和*point_2也就是分辨指向b和a的方法把值显示自爱屏幕上 */
}
/* 此题需要注意和了解是的此法并没有改变变量a,b的值只是利用指针变量分别存储a和b的地址,然后再把那两个指针变量的值对换一下其实就是存储在
指针变量里面a与b的地址对换,在利用*point_1和*point_2的方式把调换后的值显示出来这里的*point_1实际就是a,此中算法并非真的改变a,b的值,而是
利用指针进行地址交换达到大小排序的目的.
*/
#include <stdio.h>
main()
{
int a,b; /* 定义a,b两个整形变量用于输入两个整数 */
int *point_1,*point_2; /* 定义三个指针变量 */
scanf("%d,%d",&a,&b); /* 格式化输入a,b的值 */
point_1 = &a; /* 把指针变量point_1的值指向变量a的地址 */
point_2 = &b; /* 把指针变量point_2的值指向变量b的地址 */
compositor(point_1,point_2); /* 调用自定义的排序涵数,把a,b的地址传递给point_1和point_2 */
printf("%d,%d",a,b); /* 打印出a,b的值 */
}
static compositor(p1,p2)
int *p1,*p2; /* 定义形式参数p1,p2为指针变量 */
{
int temp; /* 建立临时存储变量 */
if (*p1<*p2) /* 如果*p1<p2,注意这里的*p1和*p2其实就是a和b */
{
temp = *p1; /* 利用变量temp用于临时存储*p1和就是a的值 */
*p1 = *p2; /* 将*p1的值也就是a的值换成*p2的值也就是b的值,等价于a=b */
*p2 = temp; /* 将*p2的值也就是temp的值等价于b=temp */
}
}
/* 注意:此题与上题不同的是,直接改变了a于b的值达到真实改变的目的 */
⑺ c语言指针的指针的理解
指针,即指向数据的储存地址,方便计算机寻找数据,可以指向变量,函数,数组,甚至指向指针(如int **point),组合起来,好多方式。定义并指向一个变量后,没*,point代表变量地址,有*,代表地址里的值即变量值,指向指针的指针**point分开理解,首先指向*point,而*point代表变量的值
⑻ C语言中point结构体
估计是一个坐标的结构体,
首先, 这个结构包括两个部分, 分别为 x 坐标 和y 坐标.
接着, 有两个构造函数, 第一个为默认的构造函数;
第二个为可初始xy坐标的函数.
一般用在需要标注位置的程序上.
⑼ C语言 point(char*pt); main() {char b[4]={'a','c','s','f'},*pt=b; pt=point(pt); printf("%c
就算函数调用成功,输出也为d,而不是a,数组下标是从0开始.
被调函数的计算结果在离开函数大括号后就已经不在了,
回到主函数的变量p并不是调用函数后的计算结果,p仍然是
数组b的首地址,所以输出是a.
char
*p;//定义全局变量
point(char
*c)
{
p=c+3;
}//全局变量返回计算结果
main()
{
char
b[4]={'a','b','c','d'};
p=b;//p为数组首地址
point(p
);//调用函数,地址加3
printf("%c\n
",
*p);//输出为b[3]
}
⑽ C语言指针基本概念及其指针变量的定义是什么
指针是常见间接访问方式.指针就像一个快捷方式,它指向内存的一个地址,可以通过指针就可以间接的访问到数据。对于计算机,访问内存的方式有两种,直接访问和间接访问。直接访问通过就是通过变量名称去访问。指针概念是构成C/C++的重要元素之一,是变量的一种类型,存放的是指定类型数据的地址,而同类型变量存放的是数据。
指针变量:就是一个变量,其值是可变的,与整形变量、浮点变量等等的命名规则完全相同。 “指针”是概念,“指针变量”是具体实现。指针类型说明,即定义变量为一个指针变量; 指针变量名; 变量值(指针)所指向的变量的数据类型。
(10)c语言point扩展阅读:
与其他高级编程语言相比,C 语言可以更高效地对计算机硬件进行操作,而计算机硬件的操作指令,在很大程度上依赖于地址。指针提供了对地址操作的一种方法,因此,使用指针可使得 C 语言能够更高效地实现对计算机底层硬件的操作。另外,通过指针可以更便捷地操作数组。在一定意义上可以说,指针是 C 语言的精髓。