您的位置:

c语言aa和a+a,c语言*a和a的区别

本文目录一览:

c语言中,a 和a[] 有什么区别

a[]比a少一维,我具体给你解释下。

几个元素可以组成数组,而几个一维数组可以组成二维数组,如此一直增加维数。

比如说a[0]=2,a[1]=1,a[2]=3,组成一个一维数组,这就是a.但是,你要注意,a不是直接把这些东西都存着的,a只存首地址。

假设定义了一个二维数组a[3][3].这时候a[0],a[1],a[2]就不再是元素了,而代表的是一个有三个元素的一位数组,而此时的a就是一个二维数组。如果感觉这个有点困难没关系,等学习了指针什么的久很好理解这个了。

再说说你给的程序,你是不是在疑问为什么gets()直接给str1 就可以了?还有那个输出函数,为啥只用给str1就可以?

这得给存储方式有关,字符串就是字符的二维数组,gets()需要输入字符串的首地址,这个还算好理解,因为你应该学过了scanf()了,二者差不多,关键是为什么输出函数直接就写了str1呢?printf()之前你学的一般都是(printf("%d",a[1]));这种类型的。这里为啥要填一个地址参数呢?这是因为你前面是%s s代表字符串,字符串本身就是二维的,因此,你当然不能只给他一个单独的元素了,那么,你给了首地址他如何知道你这个字符串是啥呢?因为字符串都是顺序存储的,更重要的是字符串在结尾处有个标志“/0”,因此,你只要给力他首地址,他就知道从哪里开始,从哪里结束了。

纯手打,望采纳。

C语言中'a'和"a"有什么区别?

1、本质区别

双引号里面的是字符串, 而单引号里面的代表字符。

2、输出区别

str = “a”输出的就是a这个字母;

str = ‘a’输出的测试65

3、底层区别

用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。

扩展资料:

C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

不同的变量类型可以用结构体(struct)组合在一起。

只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

部份的变量类型可以转换,例如整型和字符型变量。

通过指针(pointer),C语言可以容易的对存储器进行低级控制。

预编译处理(preprocessor)让C语言的编译更具有弹性。

c语言"a"和'a'的差别

"a"是一个字符串。在C中,字符串存储的时候会在最后自动加入‘\0’这个字符。在操作这个字符串的时候,比如读取的时候。遇到‘\0’就表示这个字符串完了。而‘a’是一个字符。用十进制数表示是97,不信你可以用“%d”尝试查看‘a’对应的数值大小。希望对你能有帮助吧

利用c语言求级数a,aa,aaa,aaaa,aaaaa,...... 的前n项和,a和n由键盘输

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

int main(void){

    int a,n,sum=0,x=0;

    while(1){

        printf("Input a  n(0=a=9, n Pint)...\n");

if(scanf("%d%d",a,n),a=0  a=9  n0)

            break;

        printf("Error, redo: ");

    }

    while(sum+=(x*=10)+=a,--n);

    printf("The result is %d\n",sum);

    return 0;

}

C语言 a+aa+aaa+...

题目:

输入两个整数a和n。(1≤n≤14,1≤a≤9),计算 a+aa+aaa+...

分析:

这里n值达到了14,远超了整数的范围,但未超出double类型数据有效范围,因此,可用double来存储n个a的结果。整形会溢出。

实现过程:

定义一个double变量da,累加结果变量sum,初始化为0

定义两个整形变量a n用来存储输入数据

循环生成a, aa,aaa等数据,存储到da中,进行累加  : da=da*10+a;  sum+=da ;

循环结束后,用%.0f输出累加结果(看起来象整数)

参考代码: