ZKX's LAB

C 里的指针 为什么加入*和取地址符&能够正常排列,而去掉后还是你输入的值 输入指针变量为何不用加地址符

2020-10-11知识17

为什么字符指针指向字符串的时候,输出时不需要再指针前加*号呢? 因为char*str这个定义了一个类型为char*的字符型指针str,而str指向了 I LOVE CHINA。中的第一个字符I。cout流里面有一个循环就是输出str指向的字符串,其中把str赋给了temp指针,作为移位用,从而一个个输出出来。而*str是一个字符了就是I,*是解引用 就是读出str指向的字符,所以*str就是I了 这个是不能赋值和移位的 所以输出不出来。扩展资料:关于指向字符串的指针1、用字符数组存放一个字符串char string[]=\"Linux C;printf(\"%s\\n\",string);string是一个字符数组名,它同时也是该字符数组的首地址。2、用字符串指针来指向字符串如果不想定义字符数组,就可以只用一个指向字符串的指针,叫“字符串指针”,例如:char*p=\"Linux C;printf(\"%s\\n\",p);“Linux C”是一个字符串常量。C语言对于字符串常量的处理方法:在内存中开辟一个字符数组来存储该字符串常量,并把开辟出的字符数组的首地址赋给p。

C 里的指针 为什么加入*和取地址符&能够正常排列,而去掉后还是你输入的值 输入指针变量为何不用加地址符

C语言中 用scanf函数输入字符串数组,取地址符&是不用输的,如果输了取地址符算错么 ,或者含义不一样么? 在VC中name和&name是一样的,都可以做右值表示数组的首地址,scanf(\"%s\",&name)和scanf(\"%s\",name)一样,不过不知道C标准中是怎样规定的,有可能在别的编译器中&name不允许。VC经常会在某些细节上不遵守C标准,你懂的。

C 里的指针 为什么加入*和取地址符&能够正常排列,而去掉后还是你输入的值 输入指针变量为何不用加地址符

scanf取址符&什么时候加?为什么这题name不加&?给数组赋值不也要加&吗?可以用地址与指针的 数组的名字本身就是地址,所以不用加。单个变量需要加取地址。这里你加和不加效果一样,即name的值和&name值一样。

C 里的指针 为什么加入*和取地址符&能够正常排列,而去掉后还是你输入的值 输入指针变量为何不用加地址符

请问C语中的指针变量运算符的星号怎么输入啊? 就是键盘上的乘号*

c语言中为什么printf输出变量值的时候不要加地址符&,而scanf中却要加上 楼主你好printf函数的目的是输出 一般就是使用该变量的值 不需要改变这个变量的值然而scanf函数的目的是输入 是肯定会改变变量的值如果楼主学了指针 就应该知道:c语言在一个函数中要改变变量的值 就需要使用指针 那么对于一个变量来说 就需要取地址(指针也就是地址)希望楼主明白了哈

如果a是一个指针变量那么&a和a都以%p输入,输出的地址为什么不一样呢? 假设int*a;那么输出a 是a指向的地址,这个是可变的,也就是a=xxx可以修改这个值而&a是存储a所在的地址,这个是系统分配的 不可变从类型上来说 a是int*而&a是int*

#scanf#变量#指针数组#c语言函数#指针

随机阅读

qrcode
访问手机版