正文
C语言指针赋值和引用,c语言把指针赋值给指针
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
c语言怎么样把指针的值赋值给另一个指针
return 0;} C语言 怎么把指针的值 赋给另一个数组 循环赋值, 或者直接strcpy。因为这里是字符串。 比如 #include int main(){int i=0;char a[100];scanf(%s,a);fun(&a);return 0;}int fun(int *p){int i,b,c,d;char j[100];strcpy(j, p);用memcpy也可以。
首先,就是最基本的知识,写头文件、函数声明、定义变量。下面还需要定义指针,需要定义两个指针p1和p2,然后把a的地址赋值给p1,把b的地址赋值给p2。然后就是调用函数,该函数没有返回值,就直接调用,但是参数进入的是a和b的地址,而不是a和b。
(1)首先你要看你已知的地址是什么类型变量的地址,然后你就定义一个基类型对应的指针变量,比如 int a,*p;p=保证p与a为同一类型。
在C语言中能否直接给指针指向的数据赋值?为什么
可以,但int *p;*p=7;这样不行。因为“能直接给指针指向的数据”赋值,而这里的p还没有指向,所以不能赋值,这种指针有个名字叫“悬浮指针”,是不能给它赋值的。这样才可以:int a,*p=*p=7;实际上就是使a等于了7。
肯定能。但你编写的:int *p;*p=7;这样的程序不对。因为“能直接给指针指向的数据”赋值,而你编写的小程序里的p还没有指向,所以不能赋值;这个指针叫“悬浮指针”,也叫野指针,它不能被赋值的。
*q, *p); return 0;}会输出2 100000 这个等效于 a=b, float赋值给int,会自动做强制转换,也就是向下取整。当如果是 q=p 那就不行了。 不同类型指针不可以直接赋值。如果一定要赋值 可以q=(int *)p;做显式的强制转换。 但是由于int和float的存储结果不同,得到的值也是错的。
在C语言中能否直接给指针指向的数据赋值?为什么?
肯定能。但你编写的:int *p;*p=7;这样的程序不对。因为“能直接给指针指向的数据”赋值,而你编写的小程序里的p还没有指向,所以不能赋值;这个指针叫“悬浮指针”,也叫野指针,它不能被赋值的。
可以直接给指针指向的数据赋值。因为*p操作是这样一种运算,返回p的值作为地址的那个空间的取值。存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。
int*p;p为指针,地址是未知的,如果直接赋值 p=a;这样编译可以通过,但是会产生警告,p的地址是随机分配的,这样对未知的地址赋值很危险,可能会覆盖掉某些重要数据,所以避免这种危险,在定义指针时注意初始化,也就是赋值。可以int*p=或者int*p;p=然后再对p进行操作 有错。
*q, *p); return 0;}会输出2 100000 这个等效于 a=b, float赋值给int,会自动做强制转换,也就是向下取整。当如果是 q=p 那就不行了。 不同类型指针不可以直接赋值。如果一定要赋值 可以q=(int *)p;做显式的强制转换。 但是由于int和float的存储结果不同,得到的值也是错的。
C语言中可以给指针变量赋值常数。申请了空间(在常量区),存放了字符串 在字符串尾加上了/0返回地址,这里就是返回的地址赋值给了p 字符串常量hello出现在一个表达式中时,hello表达式使用的值就是这些字符所存储的地址(在常量区),而不是这些字符本身。
c语言指针引用数组元素,从p=a开始解释下此程序
p=a; //使int*指针p指向数组a的首元素,即a[0]的地址—&a[0]。
问题3:对于int (*p)[4]代表的是int型数组指针,步长是(4 * sizeof(int))。首先说明的是对于第7行程序打印的结果不是a[3]对应的值,这样的操作属于越界(即访问到数组外的内存)。
下来看看这个程序的作用:int a[5],*p=a;前半句int a[5]是声明一个整型数组a,它有五个元素,分别是a[0]、a[1] 、a[2]、A[3]、a4[4],系统为她们分配五个连续的储存空间。
选D,A选项中,p是指针,指向数组a。因为a值是数组a的首地址,在给p赋值时,p值也等于了a的首地址值,即a和p的值都是同一个地址值,那么p-a就等于了0,相当于a[0],而a[0]是合法的。
C语言指针变量的赋值和做函数的参数
1、在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。
2、变量的指针就是变量的地址。存放变量地址的变量是指针变量。即在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个变量的地址或称为某变量的指针。为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”。
3、函数调用inv(a,10,&max,&min);就是将数组a的首地址取出来赋值给临时变量x,10赋值给n,(主程序中的变量)max的地址赋值给(参数临时变量)max,(主程序中的变量)min的地址赋值给(参数临时变量)min。
4、下例中的Add),在其参数列表中使用该函数指针类型,同时需要定义另一函数(下例中的fpAdd,注意该函数形式要和fpFunt一致,本例子中是返回一个整数,两个整型参数)作为实参用。
5、p的地址是随机分配的,这样对未知的地址赋值很危险,可能会覆盖掉某些重要数据,所以避免这种危险,在定义指针时注意初始化,也就是赋值。可以int *p=或者int *p;p=然后再对p进行操作 有错。注意大小写,还有 int a=9;int *p;p=//这个是指针指向a p=8;这样就对了。
6、要改变一个变量的值,到主调函数中也生效,那就必须穿地址(传指针), 否则不行。不过 并不是指针类型就可以,而必须是要修改类型的指针。比如 你要修改int 就要传int 要修改 char * 就要传char 然后 在函数中改变参数指向空间的值,也就是修改*p的值。
关于C语言指针赋值和引用和c语言把指针赋值给指针的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。