notes/education/software development/ECE1400/Chapter 11 Exercises.md

15 lines
609 B
Markdown
Raw Normal View History

2024-10-25 19:46:54 +00:00
1. Suppose that the following declarations are in effect:....
a. `14`
b. `34`
2024-10-25 19:51:54 +00:00
c. `4`
d. `true`
e. `false`
2. Suppose that `high`, `low`, and `middle` are all pointer variables of the same type, and the `low` and `high` point to elements of an array. Why is the following statement illegal, and how could it be fixed?
```c
middle = (low + high) / 2
```
2024-10-25 20:01:54 +00:00
The above statement is illegal because you can't add an `int *` to an `int *`. It can be made legal by casting `low` and `high` to numbers, performing the operation, then casting to a pointer.
```c
middle = (int*) (((long) low + (long) high) / 2);
```