C语言 指针 直接字符串变量前加*是什么怎么回事?没有提前定义啊
#include<conio.h>#include<stdio.h>voidfun(char*a){}voidmain(){chars[80];printf("Enter...
#include<conio.h>
#include<stdio.h>
void fun(char * a)
{
}
void main ()
{
char s[80];
printf("Enter a string:\n");
gets(s);
fun(s);
printf("The string after deleted:\n")
puts(s);
}
二级C的一套程序设计题,就是不懂为什么变量前面直接加*,也没有定义。不懂是什么意思。 展开
#include<stdio.h>
void fun(char * a)
{
}
void main ()
{
char s[80];
printf("Enter a string:\n");
gets(s);
fun(s);
printf("The string after deleted:\n")
puts(s);
}
二级C的一套程序设计题,就是不懂为什么变量前面直接加*,也没有定义。不懂是什么意思。 展开
5个回答
展开全部
ps指向"this
is
a
book"的首地址,即第一个元素,但是指针有一个运算就是 加法运算,
ps
+
1
就是 ps的地址 + sizeof(char)
, 后面的sizeof(char)就是偏移地址,c++只所以提供指针的加法运算,这与汇编语言中的offset是一样的。 ps
=
ps
+
10;
就相当于 ps
+
sizeof(char)
*
10,就是加10个字符的地址,它的内容就是字符'b' 没事可以到0x30
百度贴吧 耍耍,这些都是很基础的东西哦。
is
a
book"的首地址,即第一个元素,但是指针有一个运算就是 加法运算,
ps
+
1
就是 ps的地址 + sizeof(char)
, 后面的sizeof(char)就是偏移地址,c++只所以提供指针的加法运算,这与汇编语言中的offset是一样的。 ps
=
ps
+
10;
就相当于 ps
+
sizeof(char)
*
10,就是加10个字符的地址,它的内容就是字符'b' 没事可以到0x30
百度贴吧 耍耍,这些都是很基础的东西哦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void fun(char * a)
子函数里面不是定义了吗?为什么说没有定义?不理解你的意思
a就是一个*a这个指针指向的地址呀
fun(s); //这是把字符数组s[80]的地址传给子函数并通过子函数进行运算,这里的子函数什么也没有干,就是一个空函数
这个程序输入什么字符串,就输入什么字符串。和那个子函数没有关系,只是让你明白,函数的参数传递可以传递一个地址而已。
以上为个人见解,如有不对之处,欢迎大神指正!
子函数里面不是定义了吗?为什么说没有定义?不理解你的意思
a就是一个*a这个指针指向的地址呀
fun(s); //这是把字符数组s[80]的地址传给子函数并通过子函数进行运算,这里的子函数什么也没有干,就是一个空函数
这个程序输入什么字符串,就输入什么字符串。和那个子函数没有关系,只是让你明白,函数的参数传递可以传递一个地址而已。
以上为个人见解,如有不对之处,欢迎大神指正!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是指“void fun(char * a)”这里吗?
这样定义是很正常的,基本上子函数的形参都这样定义
处理数组类的函数形参用指针比较方便,数组名即为数组首地址,传递首地址,即传递整个数组,因为数组在内存中是连续存储的。不会出现断点
这样定义是很正常的,基本上子函数的形参都这样定义
处理数组类的函数形参用指针比较方便,数组名即为数组首地址,传递首地址,即传递整个数组,因为数组在内存中是连续存储的。不会出现断点
追问
如果不加那个*会怎么样?会不会导致白搭?为什么?帮我详细说一下。我追加你悬赏。
追答
不定义为指针,就得一个一个传了,很麻烦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是说fun函数的那个参数char *a 吗?
用在这里表示fun函数调用时需要的参数是一个char类型的指针,也就是地址,这里可以理解为这是一个定义,定义一个char类型的局部指针变量,如main函数里面调用时,fun(s)将字符串的初始地址传入fun函数。
用在这里表示fun函数调用时需要的参数是一个char类型的指针,也就是地址,这里可以理解为这是一个定义,定义一个char类型的局部指针变量,如main函数里面调用时,fun(s)将字符串的初始地址传入fun函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询