编程和 C 新手

问题描述 投票:0回答:2

这是我的程序:

#include <stdio.h>

int main() {
    int age = 21;
    float cgpa = 8.92;
    char name = "Karan";

    printf("My Name Is %c", name);
    printf("You are %d years old", age);
    printf("My Avg cgpa is %f", cgpa);
    return 0;
}

我收到此编译器错误:

hello.c: In function 'main':
hello.c:6:15: warning: initialization makes integer from pointer without a cast [-Wint-conversion]
   char name = "Karan";
               ^~~~~~~ 
c pointers output
2个回答
4
投票

“Karan”是一个字符串文字,而不是单个字符。

字符串文字从技术上讲是一个字符数组,保存字符串的变量必须是指向字符数组的指针。

char first_char = 'a';
char second_char = 'b';
printf("First char is %c and second is %c", first_char, second_char);

C 中单个字符的存储方式为

%c

要存储字符串,需要声明一个字符或字符指针数组,这是通过

完成的
char* name = "Karan";
printf("My name is %s", name);

其格式说明符为

%s

另请注意,在声明字符串时使用双引号,在声明字符时使用单引号


0
投票

char name[] = 'Karan';当您声明由多个字符组成的任何内容时,应该使用这种语法。 Karan 有多个字符,因此应将其声明为字符数组。字符应使用 '' 声明,字符串应使用“”声明。使用“”和“”时有很多区别。因此在声明字符数组时要小心。

© www.soinside.com 2019 - 2024. All rights reserved.