在C编程中,比较两种不同类型的指针,如下所示:
int i = 1;
double d = 2.5;
int *ip = &i;
double *dp = &d;
if(ip != dp) // is it UB?
printf("Not same\n");
C中是否存在ip != dp未定义的行为?
在许多编程语言(包括、和)中,可以在内部放置一个数组。在这里,我试图把一个C整数数组放在它的第三个索引处,但是我不确定在C编程语言中是否支持这个:
#include <stdio.h>
int main(void) {
int arr[] = {1, 1, 2};
arr[2] = arr; //now I'm trying to put arr into itself.
printf("%i", arr[2]); //this prints a negative number each time I run the program
我不得不编写一个C程序,它有600多行代码和大约25个函数。这是我编写的最长的C代码。
我注意到其中一些函数有5个以上的参数。直接从main()调用的对象有更多的参数。它离main()越远,就越少。
我还注意到,我经常不得不将参数传递给函数,并不是因为该函数直接使用该参数,而是该函数调用了另一个需要该参数的函数。
所以看起来就像
void f1(int a, int b,..., int bar){
int foo = f2(bar); // the only time 'bar' is used in f1
.
.
.
}
我试图最小化全局变量
我的一位教授给了我们几个考试练习题,其中一个问题如下(psuedocode):
a.setColor(blue);
b.setColor(red);
a = b;
b.setColor(purple);
b = a;
//what color is a, and what color is b?
对我来说,这似乎是非常基本的,所以我提出了答案:a是‘红色’,b是‘红色’,但我被告知这是不正确的。我把我的答案分解成数学题:
a = 15;
b = 12;
a = b; //a becomes 12
b = 13;
b = a; //b becomes 12
但是,我的思维过程是通过C,而不是Ja