blsn.net
当前位置:首页 >> C语言编程输入时为什么一维数组要加地址符,字符数... >>

C语言编程输入时为什么一维数组要加地址符,字符数...

在C语言中,数组的名字本身就是一个指针即为起始地址,字符数组也是一样的。比如 int a[2] = {1,2};int *p = a; //a本身就是一个指针,它表示数组的起始地址。char str[20] = "hello";char *pstr = str; //str本身就是一个指针,它表示数组的起...

因为字符数组的名称只是一个地址而已,所以需要就&作为去地址出的值,而单个的他那个就代表了值的内容

不需要啊 数组名就代表数组的首地址埃

因为你是按%s 字符串的格式输出的, 它一个接一个挨着输出, 直到遇见'\0'才中止

在VC中name和&name是一样的,都可以做右值表示数组的首地址,scanf("%s",&name)和scanf("%s",name)一样,不过不知道C标准中是怎样规定的,有可能在别的编译器中&name不允许。VC经常会在某些细节上不遵守C标准,你懂的。

在初始化的时候,会在字符串后面z自动加上'\0',在运算的时候for(m=0;m

#include "stdio.h" #include "string.h" void main() { char str[500]; int i; printf("请输入字符串:\n"); gets(str); for(i=0;i='0'&&str[i]

int a[10]; char b[10]; 其中a的类型是const int * 常量整形指针 其中b的类型是const char *常量字符指针,二者都是指针。 我猜想你的疑惑在于:scanf("%d", &a[0]); scanf("%s", b); 这是对于scanf的实现问题了,对于%s输入的是字符串,是一串...

#include #include const int MAXSIZE = 10;const int MAXLEN = 50;void mysort(char s[][MAXLEN],int n) {int i,j,k;char tmp[MAXLEN];for(i = 0; i < n; ++i) {k = i;for(j = i + 1; j < n; ++j) {if(strcmp(s[k],s[j]) > 0) k = j;}if(i != k...

楼主你好 printf函数的目的是输出 一般就是使用该变量的值 不需要改变这个变量的值 然而scanf函数的目的是输入 是肯定会改变变量的值 如果楼主学了指针 就应该知道:c语言在一个函数中要改变变量的值 就需要使用指针 那么对于一个变量来说 就需...

网站首页 | 网站地图
All rights reserved Powered by www.blsn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com